home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
quintus
/
quintus0.lha
/
work
/
command_2.06.2
< prev
next >
Wrap
Text File
|
1992-04-03
|
17KB
|
382 lines
%%% COMMANDS
%%% version 2.00.0 (based on command_19.4)
%%% added equality transformation
%%% version 2.00.1
%%% added equality rewriting
%%% version 2.00.3
%%% changed "equality_rewriting" to "auto_orient"
%%% added "outrwr", added "outrwt", added "outtreq", and "pullout_constants"
%%% version 2.00.6
%%% added "include_original_clause"
%%% changed default of "simple_small_proof_check" from clear to set
%%% version 2.00.8
%%% added lexicographic path ordering
%%% version 2.03.4
%%% incorporated changes made to clin V1 between 7/31/90 and 10/18/90 which
%%% are visible externally -- changes to comments, predicate names, and
%%% variable names are not incorporated
%%% made "outrwr", "outrwt", and "outtreq" default to clear
%%% version 2.03.6
%%% increased number of variables allowed in clauses from 20 to 100
%%% version 2.04.3
%%% changed pullout_constants default value to clear
%%% version 2.04.5
%%% added restricted_rewrite to control whether restricted or unrestricted
%%% rewriting of equations is used
%%% added equality_transform_each_round flag
%%% added safe_early_priority_test flag
%%% added early_unit_subsumption flag
%%% added early tautology test
%%% added small_proof_nucleus_bound
%%% corrected setting of paramters with infinity default
%%% version 2.04.6
%%% added fixed_priority
%%% added start_priority_bound
%%% version 2.04.8
%%% added group_detection
%%% version 2.05.1
%%% added clause splitting
%%% version 2.05.5
%%% added equational rewriting
%%% version 2.05.6
%%% changed early unit subsumption to equality early unit subsumption
%%% added new early unit subsumption
%%% version 2.05.8
%%% renamed assign/2 to assign_cmd/2 for compatibility with Quintus Prolog 3
%%% added priority_bound_increment
%%% version 2.06.0
%%% added clause_generation_loop flag
%%% added save_rewrite_rules
%%% version 2.06.1
%%% added constrained rewriting
%%% added save_unrestricted_normal_form
%%% version 2.06.2
%%% added fast_priority_update
%%% added duplicate_partial_instance_test
%%% added precompute_constraints
%%% added restricted_equality_transform
%%% added cache_size
%%% changed restricted_equality_transform default to 0
%%%
%%% This file contains a list of settings. Commands for setting and
%%% retracting settings are also provided.
%%%
%%% A list of settings.
choice :-
infinity(X),
write_line(2,'Default settings:'),
write_line(5,'clause_generation_loop.'),
write_line(5,'count_all_literals.'),
write_line(5,'depth_coef(0).'),
write_line(5,'do_hyper_linking.'),
write_line(5,'duplicate_partial_instance_test.'),
write_line(5,'fast_priority_update.'),
write_line(5,'greatest_time_bound(800).'),
write_line(5,'hl_literal_reordering.'),
write_line(5,'least_time_bound(200).'),
write_line(5,'literal_coef(0).'),
write_line(5,'max_no_clauses(1600).'),
write_line(5,'precompute_constraints.'),
write_line(5,'relevance_bound(',X,').'),
write_line(5,'relevance_coef(0).'),
write_line(5,'replace_literal_reordering.'),
write_line(5,'restricted_equality_transform(X).'),
write_line(5,'restricted_rewrite.'),
write_line(5,'safe_early_priority_test.'),
write_line(5,'save_rewrite_rules.'),
write_line(5,'save_unrestricted_normal_form.'),
write_line(5,'simple_small_proof_check.'),
write_line(5,'size_coef(1).'),
write_line(5,'small_proof_check.'),
write_line(5,'small_proof_nucleus_bound(',X,').'),
write_line(5,'small_proof_size_bound(',X,').'),
write_line(5,'spc_literal_reordering.'),
write_line(5,'start_no_clauses_coef(3).'),
write_line(5,'support_list([b,f]).'),
write_line(5,'tautology_deletion.'),
write_line(5,'term_ordering(lpo).'),
write_line(5,'time_limit(2000).'),
write_line(5,'unit_resolution.'),
write_line(5,'user_control.'),
write_line(2,'more (y./n.)?'),
read(Step1),
choice2(Step1).
choice2(y) :-
write_line(2,'print-out commands(set/clear):'),
write_line(5,'outCacg: print out clauses after clause generation'),
write_line(5,'outCagen: print out clauses after generation'),
write_line(5,'outCahl: print out clauses after hyper-linking'),
write_line(5,'outCainst: print out clauses after instance deletion.'),
write_line(5,'outCasimp: print out clauses after subsump/simplif.'),
write_line(5,'outcsplit: print out results of clause splitting.'),
write_line(5,'outfls: compute real fully linked subset.'),
write_line(5,'outinst: print out nucleus and hyper-instances.'),
write_line(5,'outhllits: print out literal lists for hyper-linking.'),
write_line(5,'outpc: print out model or relevant clauses for PC.'),
write_line(5,'outpcin: print out input set to PC.'),
write_line(5,'outrwt: print out rewrite rules.'),
write_line(5,'outrwt: print out rewritten terms.'),
write_line(5,'outtreq: print out transformed equations.'),
write_line(2,'more (y./n.)?'),
read(Step2),
choice3(Step2), !.
choice2(n).
choice3(y) :-
write_line(2,'settings[assign(name,value)/delete(name,arity)]:'),
write_line(5,'clause_splitting(N): maximum size of clause after clause splitting.'),
write_line(5,'depth_coef(D): depth coefficient for priority.'),
write_line(5,'literal_coef(L): depth coefficient for priority.'),
write_line(5,'max_no_clauses(M): max number of clauses retained.'),
write_line(5,'relevance_bound(R): relevance bound for clauses.'),
write_line(5,'relevance_coef(R): depth coefficient for priority.'),
write_line(5,'restricted_equality_transform(N): use restricted equality transform if equality transform generates clause with more than N literals.'),
write_line(5,'size_coef(S): depth coefficient for priority.'),
write_line(5,'start_no_clauses(S): starting number of clauses retained.'),
write_line(5,'start_no_clauses_coef(S): factor to multiply start_no_clauses.'),
write_line(5,'support_list(S): support strategies.'),
write_line(5,'term_ordering(O): term ordering.'),
write_line(5,'time_limit(M): time limit for a run.'),
write_line(5,'time_limit_coef(C): time limit coefficient for a run.'),
write_line(5,'time_limit_multiple(M): advance time limit by M times for supervisor mode.'),
write_line(2,'more (y./n.)?'),
read(Step3),
choice4(Step3), !.
choice3(n).
choice4(y) :-
write_line(2,'settings[assign(name,value)/delete(name,arity)]:'),
write_line(5,'back_literalbound(B): literal bound of number of literals for a backward supported clause.'),
write_line(5,'small_proof_nucleus_bound(N): maximum number of literals in nucleus during small proof checking.'),
write_line(5,'small_proof_size_bound(D).'),
write_line(5,'for_literalbound(F): literal bound of number of literals for a forward supported clause.'),
write_line(5,'literal_bound(L): literal bound of number of literals for a clause.'),
write_line(5,'user_literalbound(U): literal bound of number of literals for a user supported clause.'),
write_line(5,'start_priority_bound(S): starting priority bound for fixed priority.'),
write_line(5,'priority_bound_increment(I): priority bound increment for fixed priority'),
write_line(5,'start_wu_bound(S): starting work unit bound for sliding priority.'),
write_line(5,'cache_size(S): maximum size of caches used in constrained rewriting.'),
write_line(2,'more (y./n.)?'),
read(Step4),
choice5(Step4), !.
choice4(n).
choice5(y) :-
write_line(2,'options(set/clear):'),
write_line(5,'auto_orient: generate rewrite rules from equations.'),
write_line(5,'clause_generation_loop: repeatedly generate clauses after hyper-linking until no new clauses are generated.'),
write_line(5,'constrained_rewriting: use constrained rewriting.'),
write_line(5,'count_all_literals: count all literals in the sliding priority computation.'),
write_line(5,'delete_all_instances: delete all instances.'),
write_line(5,'delete_nf_instances: delete non-forward supported instances.'),
write_line(5,'do_hyper_linking: perform hyper-linking.'),
write_line(5,'duplicate_partial_instance_test: perform duplicate partial instance test.'),
write_line(5,'early_tautology_test: perform early tautology test.'),
write_line(5,'early_unit_subsumption: perform early unit subsumption test.'),
write_line(5,'equality_early_unit_subsumption: perform equality early unit subsumption test.'),
write_line(5,'equality_transform: perform equality transformation.'),
write_line(5,'equality_transform_by_round: perform equality transformation at beginning of each round.'),
write_line(5,'equational_rewrite: use equational rewrite rules.'),
write_line(5,'fast_priority_update: update sliding priority after each link.'),
write_line(5,'fixed_priority: use fixed priority.'),
write_line(5,'ground_disting_after_match: ground distinguished literals after matching for replacements.'),
write_line(5,'ground_restriction: ground instances for replacements.'),
write_line(5,'ground_substitution: ground electrons for replacements.'),
write_line(5,'group_detection: automatically assert group properties.'),
write_line(5,'hl_literal_reordering: reordering for hyper-linking.'),
write_line(5,'include_original_clause: include original clause when performing equality transform.'),
write_line(5,'precompute_constraints: precompute constraints when rewriting a clause with constrained rewriting'),
write_line(5,'pullout_constants: constants are pulled out when transforming equations'),
write_line(5,'realfls: compute real largest fully linked subset.'),
write_line(5,'replace_literal_reordering: reordering for replacement.'),
write_line(5,'replacement: use definition replacements for literals.'),
write_line(5,'restricted_rewrite: use restricted rewrite when rewriting equations.'),
write_line(5,'safe_early_priority_test: perform early priority test so only "safe" partial instances are pruned.'),
write_line(5,'save_rewrite_rules: save rewrites rules between sessions.'),
write_line(5,'save_unrestricted_normal_form: save unrestricted normal form under restricted rewriting.'),
write_line(5,'simple_small_proof_check: use unit clauses as elctrons in small proof check.'),
write_line(5,'size_by_clause: the clause size for priority is the sum of all literal sizes.'),
write_line(5,'slidepriority: use sliding priority.'),
write_line(5,'small_proof_check: call small proof checking.'),
write_line(5,'small_proof_check_all: use all clauses for nucleus in small proof checking.'),
write_line(5,'spc_literal_reordering: reordering for small proof.'),
write_line(5,'sum_of_measures: priority is the sum of measures.'),
write_line(5,'super_batch: batch mode for top level supervisor.'),
write_line(5,'tautology_deletion: perform tautology deletion.'),
write_line(5,'unit_resolution: call unit subsumption/simplification.'),
write_line(5,'user_control: do not call top level supervisor.'),
write_line(2,'more (y./n.)?'),
read(Step5),
choice6(Step5), !.
choice5(n).
choice6(y) :-
write_line(2,'These are for top level supervisor[assign(<name,value)/delete(name,arity)]:'),
write_line(5,'least_time_bound(B): lower time bound.'),
write_line(5,'greatest_time_bound(B): upper time bound.'), nl.
choice6(n).
%%% Change options.
set_clear_comlist([outCacg, outCagen, outCahl, outCainst, outCasimp,
outcsplit, outfls, outinst, outhllits, outpc, outpcin,
outrwr, outrwt, outtreq,
auto_orient, clause_generation_loop,
constrained_rewriting,
count_all_literals, delete_all_instances,
delete_nf_instances, do_hyper_linking,
duplicate_partial_instance_test,
early_tautology_test, early_unit_subsumption,
equality_early_unit_subsumption,
equality_transform, equality_transform_by_round,
equational_rewrite, fast_priority_update,
fixed_priority, ground_disting_after_match,
ground_restriction, ground_substitution,
group_detection, hl_literal_reordering,
include_original_clause, pullout_constants,
precompute_constraints, realfls,
replace_literal_reordering,
replacement, restricted_rewrite,
safe_early_priority_test,
save_rewrite_rules, save_unrestricted_normal_form,
simple_small_proof_check,
size_by_clause, slidepriority,
small_proof_check, small_proof_check_all,
spc_literal_reordering, sum_of_measures,
super_batch, tautology_deletion,
unit_resolution, user_control]).
assign_delete_comlist([clause_splitting, cache_size, depth_coef,
literal_coef, max_no_clauses,
relevance_bound, relevance_coef,
restricted_equality_transform, size_coef,
start_no_clauses, start_no_clauses_coef,
support_list, term_ordering, time_limit,
time_limit_coef, time_limit_multiple,
back_literalbound, small_proof_nucleus_bound,
small_proof_size_bound,
for_literalbound, literal_bound,
user_literalbound, priority_bound_increment,
start_priority_bound,
start_wu_bound, least_time_bound,
greatest_time_bound]).
set(Command) :-
set_clear_comlist(ComList),
member(Command, ComList),
!, assertin(Command,0,Command).
set(Command) :-
write_line(5, 'No such command: ', Command).
clear(Command) :-
set_clear_comlist(ComList),
member(Command, ComList),
!, pullout(Command,0).
clear(Command) :-
write_line(5, 'No such command: ', Command).
assign_cmd(Command,X) :-
assign_delete_comlist(ComList),
member(Command, ComList),
Com =.. [Command, X],
!, assertin(Command,1,Com).
assign_cmd(Command,_) :-
write_line(5, 'No such command: ', Command).
delete(Command,X) :-
assign_delete_comlist(ComList),
member(Command, ComList),
!, abolish(Command,X).
delete(Command,_) :-
write_line(5, 'No such command: ', Command).
assertin(X,N,Y) :-
abolish(X,N),
assert(Y).
pullout(X,N) :-
abolish(X,N).
%%% SET DEFAULTS
cache_size(1000000).
clause_generation_loop.
count_all_literals.
depth_coef(0).
do_hyper_linking.
duplicate_partial_instance_test.
fast_priority_update.
greatest_time_bound(800).
hl_literal_reordering.
infinity(1000).
least_time_bound(200).
literal_coef(0).
max_no_clauses(1600).
precompute_constraints.
relevance_coef(0).
replace_literal_reordering.
restricted_rewrite.
restricted_equality_transform(0).
safe_early_priority_test.
save_rewrite_rules.
save_unrestricted_normal_form.
simple_small_proof_check.
size_coef(1).
small_proof_check.
spc_literal_reordering.
start_no_clauses_coef(3).
support_list([b,f]).
tautology_deletion.
term_ordering(lpo).
time_limit(2000).
unit_resolution.
user_control.
set_infinity_defaults :-
infinity(X),
assert(relevance_bound(X)),
assert(small_proof_nucleus_bound(X)),
assert(small_proof_size_bound(X)),
!.
set_priority_bound_increment_default :-
fixed_priority,
not(priority_bound_increment(_)),
!,
assert(priority_bound_increment(1)).
set_priority_bound_increment_default.
%%% constant list for transforming clauses or literals to ground.
const_list(['$1','$2','$3','$4','$5','$6','$7','$8','$9','$10',
'$11','$12','$13','$14','$15','$16','$17','$18','$19','$20',
'$21','$22','$23','$24','$25','$26','$27','$28','$29','$30',
'$31','$32','$33','$34','$35','$36','$37','$38','$39','$40',
'$41','$42','$43','$44','$45','$46','$47','$48','$49','$50',
'$51','$52','$53','$54','$55','$56','$57','$58','$59','$60',
'$61','$62','$63','$64','$65','$66','$67','$68','$69','$70',
'$71','$72','$73','$74','$75','$76','$77','$78','$79','$80',
'$81','$82','$83','$84','$85','$86','$87','$88','$89','$90',
'$91','$92','$93','$94','$95','$96','$97','$98','$99','$100']).
%%% constant list for transforming clauses to Gr(F).
grf_list(['$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$',
'$','$','$','$','$','$','$','$','$','$']).
%%% A list of 100 variables. This is for making pretty outputs.
var_list(['V','W','X','Y','Z', 'V1','W1','X1','Y1','Z1',
'V2','W2','X2','Y2','Z2', 'V3','W3','X3','Y3','Z3',
'V4','W4','X4','Y4','Z4', 'V5','W5','X5','Y5','Z5',
'V6','W6','X6','Y6','Z6', 'V7','W7','X7','Y7','Z7',
'V8','W8','X8','Y8','Z8', 'V9','W9','X9','Y9','Z9',
'V10','W10','X10','Y10','Z10', 'V11','W11','X11','Y11','Z11',
'V12','W12','X12','Y12','Z12', 'V13','W13','X13','Y13','Z13',
'V14','W14','X14','Y14','Z14', 'V15','W15','X15','Y15','Z15',
'V16','W16','X16','Y16','Z16', 'V17','W17','X17','Y17','Z17',
'V18','W18','X18','Y18','Z18', 'V19','W19','X19','Y19','Z19']).